#pragma once
#include "DXAMLCommon.h"



struct MonitorBuffer
{
public: 
	XUINT32 m_traceFlags;
	XUINT32 m_processId;
	volatile XBOOL m_bInUse;
	XUINT64 m_fileHandle;
protected: 
	XINT32 m_inLocked;
	volatile XUINT32 m_in;
	XUINT32 m_out;
	XUINT8 m_buffer[65536];
public: 
	void Initialize();
	XUINT32 TotalAvailableOut();
	XUINT32 ContiguousAvailableOut();
	void * pOut();
	void AdvanceOut(XUINT32);
	XUINT32 TotalAvailableIn();
	XUINT32 ContiguousAvailableIn();
	void * pIn();
	void PeekBytes(XUINT32, void *);
	void ReadBytes(XUINT32, void *);
	XUINT32 PeekType();
};